Manipulate[Module[{f,g},f[u_,v_]:=function/.x->u/.y->v;g[u_,v_]=f[x,y]+(∂_x)(f[x,y])(u-x)+(∂_y)(f[x,y])(v-y)/.x->pt[[1]]/.y->pt[[2]];xRange={x,-5,5};yRange={y,-5,5};Plot3D[Evaluate[{f[x,y],g[x,y]}],Evaluate[xRange],Evaluate[yRange],PlotStyle->{Opacity[0.9],Opacity[0.4]},SphericalRegion->True,PlotRange->{-10,10},ClippingStyle->None,PlotLabel->{pt[[1]],pt[[2]],f[pt[[1]],pt[[2]]]},Mesh->{10,10,{pt[[1]]},{pt[[2]]}},MeshFunctions->{#1&,#2&,#1&,#2&},MeshStyle->{Directive[Blue,Opacity[.3]],Directive[Blue,Opacity[.3]],Directive[Red,Thick],Directive[Red,Thick]}]],{{function,(x^2)-(y^2),"f(x,y) = "}},{{pt,{0,0},"Point of tangency:"},{-4.5,-4.5},{4.5,4.5}}]